import { RequestHandler } from 'express';
import { req_info_increase_type } from '../Classes/cla_req_info_increase_type';
import { sign_increase_type } from '../Func/Sign_info';
import { check_only_set_cur_increase_type } from '../Func/Sign_info/Func/check_only_set_cur_increase_type';
import { res_send_cur_type_name_is_occupy } from '../Classes/cla_res_send_cur_type_name_is_occupy';
import { res_send_increase_type_done } from '../Classes/cla_res_send_increase_type_done';
import { get_cur_db_count_for_id } from '../../../../../Func/get_mdb_new_id';
import { global_db_type } from '../../../../../Func/get_global_db';
import { spacename_type } from '../../../DataDefine/sourceData';
import { full_id } from '../../../../../../../Func/full_id';
/**
 * 这个 返回 一个 组件列 的 模拟元素
 */
export const increase_a_type: RequestHandler = async (req, res) => {
  let cur_info = new req_info_increase_type(req);
  //  !important 可能需要 对用户 当前 身份进行判定 才让你 添加 全局 的 类型 定义

  let only_set = await check_only_set_cur_increase_type(cur_info);

  /**
   * only_set 为 false  时 说明 已经 存在 该条记录
   */
  if (!only_set) {
    // 发送 当前上传类型名 已经 被 占用
    let res_send = new res_send_cur_type_name_is_occupy(cur_info);

    res.send(res_send);
    return;
  }

  /**
   * 获取 id 编号full_id
   */
  let cur_type_id_num = await get_cur_db_count_for_id(global_db_type);

  /**
   * 完整 编号
   */
  cur_info.id = full_id(spacename_type, cur_type_id_num);

  sign_increase_type(cur_info);

  // 发送 添加 成功
  let res_send = new res_send_increase_type_done(cur_info);

  res.send(res_send);
};
